package 数据结构.tree;

//前序
public class ArrBinaryTreeDemo {
    public static void main(String[] args) {
        int arr[] = {1, 2, 3, 4, 5, 6, 7,};

        ArrbinaryTree arrbinaryTree = new ArrbinaryTree(arr);
        arrbinaryTree.preOrder();
    }
}

//编写一个ＡｒｒａｙＢｉｎａｒｙｒｅｅ
class ArrbinaryTree {
    private int[] arr;

    public ArrbinaryTree(int[] arr) {
        this.arr = arr;
    }

    public void preOrder() {
        preOrder(0);
    }


    /**
     * @param index 数组下标  也就是n  2n+1   右+2
     */
    public void preOrder(int index) {
        if (arr == null || arr.length == 0) {
            System.out.println("二叉树为空");
        }
        //输出当前元素
        System.out.println(arr[index]);
        //向左递归
        if (2 * index + 1 < arr.length) {
            preOrder(2 * index + 1);
        }
        //向右递归
        if (index * 2 + 2 < arr.length) {
            preOrder(2 * index + 2);
        }
    }
}

